home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / mmdf / mmdf-IIb.43 / lib / util / cnvtdate.c < prev    next >
Encoding:
C/C++ Source or Header  |  1989-05-11  |  1.4 KB  |  61 lines

  1. /*
  2.  * cnvtdate.c - date conversion functions
  3.  *
  4.  *
  5.  *    10/88    Edward C. Bennett <edward@engr.uky.edu>
  6.  *        Converted to standard timezone library.
  7.  */
  8. #include "util.h"
  9. #include "conf.h"
  10. #include "cnvtdate.h"
  11.  
  12. static char *day[] = {
  13.     "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
  14. };
  15.  
  16. static char *month[] = {
  17.     "Jan", "Feb", "Mar", "Apr", "May", "Jun",
  18.     "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
  19. };
  20.  
  21. char *
  22. cnvtdate(flag, datbuf)        /* produce a date/time string        */
  23. int flag;            /* date format option value        */
  24. char *datbuf;
  25. {
  26.     register    struct    tm    *i;
  27.             time_t        tsec;
  28.  
  29.     time(&tsec);
  30.     i = localtime(&tsec);
  31.  
  32.     switch (flag) {
  33.     case TIMCOM:
  34.         sprintf(datbuf, "%02d%02d%02d%02d%02d",
  35.             i->tm_year, i->tm_mon + 1, i->tm_mday,
  36.             i->tm_hour, i->tm_min);
  37.         break;
  38.  
  39.     case TIMSECS:        /* w/seconds dd mon yy hh:mm:ss        */
  40.         sprintf(datbuf, "%d %s %d %d:%02d:%02d",
  41.             i->tm_mday, month[i->tm_mon], i->tm_year,
  42.             i->tm_hour, i->tm_min, i->tm_sec);
  43.         break;
  44.  
  45.     case TIMREG:        /* RFC 822 standard time string        */
  46.     default:        /* "Wed, 21 Jan 76 14:30 PDT"        */
  47.         sprintf(datbuf, "%s, %d %s %d %d:%02d:%02d %s",
  48.             day[i->tm_wday], i->tm_mday, month[i->tm_mon],
  49.             i->tm_year, i->tm_hour, i->tm_min, i->tm_sec,
  50.             tzname[i->tm_isdst]);
  51.         break;
  52.  
  53.     case TIMSHRT:        /* w/out day of week            */
  54.         sprintf(datbuf, "%d %s %d %d:%02d %s",
  55.             i->tm_mday, month[i->tm_mon], i->tm_year,
  56.             i->tm_hour, i->tm_min, tzname[i->tm_isdst]);
  57.         break;
  58.     }
  59.     return(datbuf);
  60. }
  61.